/**********************************************************************
** Copyright (C) 2009 Nokia Corporation.
** All rights reserved.
**
** $LICENSE_TEXT$
**********************************************************************/

#ifndef BTSINGLEDEVICESELECTOR_H
#define BTSINGLEDEVICESELECTOR_H

#include <QObject>

class QDBusInterface;
class QDBusMessage;

/**
 * @brief The BtSingleDeviceSelector class encapsulates the algorithm necessary to show a bluetooth
 * connection dialog on maemo.
 */
class BtSingleDeviceSelector : public QObject
{
Q_OBJECT

public:

    /**
     * Constructs a BtSingleDeviceSelector object with the given parent.
     *
     * @param parent Parent.
     */
    explicit BtSingleDeviceSelector(QObject *parent = 0);

public slots:

    /**
     * Shows the maemo bluetooth device selection dialog.
     */
    void show();

private slots:

    /**
     * Called by DBus as a result of bluetooth device selection dialog.
     *
     * @param message DBus return message.
     */
    void searchResult(const QDBusMessage& message);

signals:

    /**
     * Signal emitted after device has been selected.
     *
     * @param deviceAddress Bluetooth device MAC address.
     */
    void deviceSelected(QString deviceAddress);

};

#endif // BTSINGLEDEVICESELECTOR_H
